package com.hzlx.mesMaterialBatches.service.impl;

import java.util.List;

import com.hzlx.MesMaterialBatchesDto;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hzlx.mesMaterialBatches.mapper.MesMaterialBatchesMapper;
import com.hzlx.mesMaterialBatches.domain.MesMaterialBatches;
import com.hzlx.mesMaterialBatches.service.IMesMaterialBatchesService;

/**
 * MES系统物料批次，用于管理物料批次全流程信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-07-01
 */
@Service
public class MesMaterialBatchesServiceImpl implements IMesMaterialBatchesService 
{
    @Autowired
    private MesMaterialBatchesMapper mesMaterialBatchesMapper;

    /**
     * 查询MES系统物料批次，用于管理物料批次全流程信息
     * 
     * @param batchId MES系统物料批次，用于管理物料批次全流程信息主键
     * @return MES系统物料批次，用于管理物料批次全流程信息
     */
    @Override
    public MesMaterialBatches selectMesMaterialBatchesByBatchId(Long batchId)
    {
        return mesMaterialBatchesMapper.selectMesMaterialBatchesByBatchId(batchId);
    }

    @Override
    public MesMaterialBatches selectMesMaterialBatchesByMaterialId(Integer materialId) {
        return mesMaterialBatchesMapper.selectMesMaterialBatchesByMaterialId(materialId);
    }

    /**
     * 查询MES系统物料批次，用于管理物料批次全流程信息列表
     * 
     * @param mesMaterialBatches MES系统物料批次，用于管理物料批次全流程信息
     * @return MES系统物料批次，用于管理物料批次全流程信息
     */
    @Override
    public List<MesMaterialBatches> selectMesMaterialBatchesList(MesMaterialBatches mesMaterialBatches)
    {
        return mesMaterialBatchesMapper.selectMesMaterialBatchesList(mesMaterialBatches);
    }

    /**
     * 新增MES系统物料批次，用于管理物料批次全流程信息
     * 
     * @param mesMaterialBatches MES系统物料批次，用于管理物料批次全流程信息
     * @return 结果
     */
    @Override
    public int insertMesMaterialBatches(MesMaterialBatches mesMaterialBatches)
    {
        return mesMaterialBatchesMapper.insertMesMaterialBatches(mesMaterialBatches);
    }

    /**
     * 修改MES系统物料批次，用于管理物料批次全流程信息
     * 
     * @param mesMaterialBatches MES系统物料批次，用于管理物料批次全流程信息
     * @return 结果
     */
    @Override
    public int updateMesMaterialBatches(MesMaterialBatches mesMaterialBatches)
    {
        return mesMaterialBatchesMapper.updateMesMaterialBatches(mesMaterialBatches);
    }

    /**
     * 批量删除MES系统物料批次，用于管理物料批次全流程信息
     * 
     * @param batchIds 需要删除的MES系统物料批次，用于管理物料批次全流程信息主键
     * @return 结果
     */
    @Override
    public int deleteMesMaterialBatchesByBatchIds(Long[] batchIds)
    {
        return mesMaterialBatchesMapper.deleteMesMaterialBatchesByBatchIds(batchIds);
    }

    /**
     * 删除MES系统物料批次，用于管理物料批次全流程信息信息
     * 
     * @param batchId MES系统物料批次，用于管理物料批次全流程信息主键
     * @return 结果
     */
    @Override
    public int deleteMesMaterialBatchesByBatchId(Long batchId)
    {
        return mesMaterialBatchesMapper.deleteMesMaterialBatchesByBatchId(batchId);
    }

    @Override
    public void updateMesMaterialBatchesByOrder(MesMaterialBatchesDto mesMaterialBatchesDto) {
        MesMaterialBatches mesMaterialBatches=new MesMaterialBatches();
        BeanUtils.copyProperties(mesMaterialBatchesDto, mesMaterialBatches);
        mesMaterialBatchesMapper.updateMesMaterialBatches(mesMaterialBatches);
    }
    @Override
    public int updateMesMaterialBatchesDto(MesMaterialBatchesDto mesMaterialBatchesDto) {
        MesMaterialBatches mesMaterialBatches=new MesMaterialBatches();
        BeanUtils.copyProperties(mesMaterialBatchesDto, mesMaterialBatches);
        return mesMaterialBatchesMapper.updateMesMaterialBatchesDto(mesMaterialBatches);
    }
}
